Computational Effect
計算効果
単に「Effect」とも言う
計算の過程で発生する計算以外の部分
いわゆる副作用のことを指す
純粋関数言語では、プログラム内に副作用を含まない
しかし、プログラミングする上では副作用は付き物である
その副作用と、プログラムを何らかの方法で接続する必要がある
そのために用いられる
代表的なのはモナドだが、別にそれに限った話ではない
環境を変えるような計算
Haskellで言えば、StateモナドやIOモナドがイメージしやすい
Listは非決定計算なのでこれもEffect
MaybeやEitherも純粋な計算以外に文脈を保持するのでEffect
つまり通常のMonadは全てEffectと言える
たぶんmrsekut.icon
資料
yallop/effects-bibliography: A collaborative bibliography of work related to the theory and practice of computational effects
関連論文一覧
例
ファイルの読み書き
ネットワーク、DBへのアクセス
例外, throw/try/catch
async/await
関連
Effect System
参考
Alexander Chichigin's answer to What are computational effects and algebraic effects? - Quora
めっちゃ良い